package cn.iocoder.yudao.module.contract.dal.dataobject.order;

import lombok.*;

import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;

/**
 * 订单 DO
 *
 * @author 芋道源码
 */
@TableName("ct_order")
@KeySequence("ct_order_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class OrderDO extends BaseDO {

    /**
     * 编号
     */
    @TableId
    private Long id;
    /**
     * 类型编码
     */
    private String contractTypeCode;
    /**
     * 类型名称
     */
    private String contractTypeName;
    /**
     * 模板id
     */
    private Long contractTemplateId;
    /**
     * 模板名称
     */
    private String contractTemplateName;
    /**
     * 凭证日期
     */
    private String audat;
    /**
     * 销售凭证
     */
    private String vbeln;
    /**
     * 合同打印模板
     * Y1纺丝合同模版
     * Y2切片合同模版
     * Y3报价单模板
     * Y4出口合同模板
     * Y5合约价合同模版
     * Y6退货合同模板
     * Y7借贷项模板
     */
    private String htdymb;
    /**
     * 销售凭证类型
     */
    private String auart;
    /**
     * 凭证类型描述
     */
    private String auartt;
    /**
     * 销售组织
     */
    private String vkorg;
    /**
     * 公司代码
     */
    private String bukrs;
    /**
     * 公司名称
     */
    private String butxt;
    /**
     * 售达方
     */
    private String kunnr;
    /**
     * 售达方描述
     */
    private String kname;
    /**
     * 销售部门
     */
    private String vkbur;
    /**
     * 部门描述
     */
    private String vkburt;
    /**
     * 销售组
     */
    private String vkgrp;
    /**
     * 组描述
     */
    private String vkgrpt;
    /**
     * 业务员
     */
    private String ywy;
    /**
     * 业务员名称
     */
    private String ywyt;
    /**
     * 装运条件
     */
    private String vsbed;
    /**
     * 合同管控类型
     */
    private String zzhtgklx;
    /**
     * 合同管控类型描述
     */
    private String zzhtgklxms;
    /**
     * 抬头合同打印备注
     */
    private String zzhthbz;
    /**
     * 送货地址
     */
    private String zzshdz;
    /**
     * 付款条件
     */
    private String zterm;
    /**
     * 付款条件解释
     */
    private String ztermt;
    /**
     * 交货冻结
     */
    private String lifsk;
    /**
     * 信用期
     */
    private String zmonth;
    /**
     * 订单原因
     */
    private String augru;
    /**
     * 订单原因解释
     */
    private String augrut;
    /**
     * 运输方式费用负担
     */
    private String yffd;
    /**
     * 付款方式
     */
    private String fkfs;
    /**
     * 产品质量
     */
    private String cpzl;
    /**
     * 销售合同状态
     */
    private String zzxshtzt;
    /**
     * 销售合同状态解释
     */
    private String zzxshtztt;

    /**
     * 国际贸易条件
     */
    private String inco1;
    /**
     * 国际贸易条件2
     */
    private String inco2;
    /**
     * 经销商
     */
    private String zzlifnr;
    /**
     * 经销商名称
     */
    private String zzlifnrt;
    /**
     * 合同号码
     */
    private String bstnk;
    /**
     * 请求交货日期
     */
    private String vdatu;
    /**
     * 凭证货币
     */
    private String waerk;

    /**
     * 合同id
     */
    private String contractId;
    /**
     * 合同号
     */
    private String contractNo;
    /**
     * 状态 0未生成 1已生成
     */
    private String status;

    /**
     * 发货状态 0未发货，1已发货
     */
    private Integer shipmentStatus;

    /**
     * 最早发货日期
     */
    private LocalDateTime latestShipmentDate;

    /**
     * 订单完成状态
     */
    private String completeState;

    /**
     * 完成状态解释
     */
    private String completeStateExplain;
}